java copy protection java software development object oriented development .net database design c++ license distribution databases electronic licensing software development asp j2ee digital rights management